
/**
 * @file mdct.h
 * MDCT header
 */

#ifndef MDCT_H
#define MDCT_H

#include "common.h"

struct A52Context;
struct A52ThreadContext;

typedef struct {
    double *trig;
    int *bitrev;
    double scale;
    int n;
    int log2n;
    double *buffer;
    double *buffer1;
} MDCTContext;

void a52_mdct_init(struct A52Context *ctx);

void a52_mdct_512(struct A52Context *ctx, double *out, double *in);

void a52_mdct_256(struct A52Context *ctx, double *out, double *in);

void a52_mdct_close(struct A52Context *ctx);

#endif /* MDCT_H */
